#ifndef FIREBOX_PHYSICAL_PROPERTY_H
#define FIREBOX_PHYSICAL_PROPERTY_H 

#include "IProperty.h"
#include "BaseDefs.h"
#include "IBoundingVolume.h"
#include "Vectors.h"
#include "Matrices.h"

//////////////////////////////////////////////////////////////////////////
/////////////             2014/10/03                       //////////////
//////////////////////////////////////////////////////////////////////////

namespace steam
{
	namespace firebox
	{
		class PhysicalProperty : public base::IProperty
		{
		public:
			PhysicalProperty();
			~PhysicalProperty();

			base::IBoundingVolume* getBoundingVolume() const;
			void setBoundingVolume(base::IBoundingVolume* val);
			base::Vector3 getPosition() const;
			void setPosition(base::Vector3 val);
			SMFloat getMassKG() const;
			void setMassKG(SMFloat val);
			static const TypeID& getIDStatic();
			const base::Matrix4& getTransformation() const;
		protected:
		private:
			base::IBoundingVolume* m_boundingVolume;
			base::Matrix4 m_transform;
			SMFloat m_massKG;
		};

	}
}
#endif